﻿using System;
namespace Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister {
    
    
    public partial class PolSoiduk2 : global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2 {
        
        private decimal @__id;
        
        private decimal @__eelnevId;
        
        private decimal @__jargnevId;
        
        private string @__regtun;
        
        private string @__regMrk;
        
        private string @__registris;
        
        private string @__eestis;
        
        private string @__vinkood;
        
        private string @__kateg;
        
        private string @__mark;
        
        private string @__mudel;
        
        private decimal @__aasta;
        
        private string @__varvus;
        
        private string @__kerenm;
        
        private string @__tyypkd;
        
        private decimal @__mootmht;
        
        private decimal @__mootvms;
        
        private string @__mootornm;
        
        private string @__kaigkastyp;
        
        private decimal @__taismass;
        
        private decimal @__regmass;
        
        private decimal @__tyhimass;
        
        private decimal @__istekohti;
        
        private decimal @__seisukohti;
        
        private decimal @__kandevoime;
        
        private decimal @__pikkus;
        
        private decimal @__laius;
        
        private decimal @__korgus;
        
        private decimal @__telgarv;
        
        private decimal @__telgveo;
        
        private decimal @__uksi;
        
        private decimal @__telgjuht;
        
        private PolSoiduk2.ITeljekoormusedType @__teljekoormused;
        
        private decimal @__haagisPiduritega;
        
        private decimal @__haagisPiduriteta;
        
        private string @__byroo;
        
        private string @__regTunnistuseKp;
        
        private string @__regTunKeht;
        
        private string @__markused;
        
        private string @__piirang;
        
        private string @__olek;
        
        private string @__olekuKp;
        
        private string @__registriOlek;
        
        private bool @__liiklusesseLubatud;
        
        private PolSoiduk2.IYlevaatusedType @__ylevaatused;
        
        private PolSoiduk2.IIsikudType @__isikud;
        
        public PolSoiduk2() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public PolSoiduk2(
                    decimal @id, 
                    decimal @eelnevId, 
                    decimal @jargnevId, 
                    string @regtun, 
                    string @regMrk, 
                    string @registris, 
                    string @eestis, 
                    string @vinkood, 
                    string @kateg, 
                    string @mark, 
                    string @mudel, 
                    decimal @aasta, 
                    string @varvus, 
                    string @kerenm, 
                    string @tyypkd, 
                    decimal @mootmht, 
                    decimal @mootvms, 
                    string @mootornm, 
                    string @kaigkastyp, 
                    decimal @taismass, 
                    decimal @regmass, 
                    decimal @tyhimass, 
                    decimal @istekohti, 
                    decimal @seisukohti, 
                    decimal @kandevoime, 
                    decimal @pikkus, 
                    decimal @laius, 
                    decimal @korgus, 
                    decimal @telgarv, 
                    decimal @telgveo, 
                    decimal @uksi, 
                    decimal @telgjuht, 
                    PolSoiduk2.ITeljekoormusedType @teljekoormused, 
                    decimal @haagisPiduritega, 
                    decimal @haagisPiduriteta, 
                    string @byroo, 
                    string @regTunnistuseKp, 
                    string @regTunKeht, 
                    string @markused, 
                    string @piirang, 
                    string @olek, 
                    string @olekuKp, 
                    string @registriOlek, 
                    bool @liiklusesseLubatud, 
                    PolSoiduk2.IYlevaatusedType @ylevaatused, 
                    PolSoiduk2.IIsikudType @isikud) {
            this.@__id = @id;
            this.@__eelnevId = @eelnevId;
            this.@__jargnevId = @jargnevId;
            this.@__regtun = @regtun;
            this.@__regMrk = @regMrk;
            this.@__registris = @registris;
            this.@__eestis = @eestis;
            this.@__vinkood = @vinkood;
            this.@__kateg = @kateg;
            this.@__mark = @mark;
            this.@__mudel = @mudel;
            this.@__aasta = @aasta;
            this.@__varvus = @varvus;
            this.@__kerenm = @kerenm;
            this.@__tyypkd = @tyypkd;
            this.@__mootmht = @mootmht;
            this.@__mootvms = @mootvms;
            this.@__mootornm = @mootornm;
            this.@__kaigkastyp = @kaigkastyp;
            this.@__taismass = @taismass;
            this.@__regmass = @regmass;
            this.@__tyhimass = @tyhimass;
            this.@__istekohti = @istekohti;
            this.@__seisukohti = @seisukohti;
            this.@__kandevoime = @kandevoime;
            this.@__pikkus = @pikkus;
            this.@__laius = @laius;
            this.@__korgus = @korgus;
            this.@__telgarv = @telgarv;
            this.@__telgveo = @telgveo;
            this.@__uksi = @uksi;
            this.@__telgjuht = @telgjuht;
            this.@__teljekoormused = @teljekoormused;
            this.@__haagisPiduritega = @haagisPiduritega;
            this.@__haagisPiduriteta = @haagisPiduriteta;
            this.@__byroo = @byroo;
            this.@__regTunnistuseKp = @regTunnistuseKp;
            this.@__regTunKeht = @regTunKeht;
            this.@__markused = @markused;
            this.@__piirang = @piirang;
            this.@__olek = @olek;
            this.@__olekuKp = @olekuKp;
            this.@__registriOlek = @registriOlek;
            this.@__liiklusesseLubatud = @liiklusesseLubatud;
            this.@__ylevaatused = @ylevaatused;
            this.@__isikud = @isikud;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected PolSoiduk2(IPolSoiduk2 @polSoiduk2) {
            this.@__id = @polSoiduk2.Id;
            this.@__eelnevId = @polSoiduk2.EelnevId;
            this.@__jargnevId = @polSoiduk2.JargnevId;
            this.@__regtun = @polSoiduk2.Regtun;
            this.@__regMrk = @polSoiduk2.RegMrk;
            this.@__registris = @polSoiduk2.Registris;
            this.@__eestis = @polSoiduk2.Eestis;
            this.@__vinkood = @polSoiduk2.Vinkood;
            this.@__kateg = @polSoiduk2.Kateg;
            this.@__mark = @polSoiduk2.Mark;
            this.@__mudel = @polSoiduk2.Mudel;
            this.@__aasta = @polSoiduk2.Aasta;
            this.@__varvus = @polSoiduk2.Varvus;
            this.@__kerenm = @polSoiduk2.Kerenm;
            this.@__tyypkd = @polSoiduk2.Tyypkd;
            this.@__mootmht = @polSoiduk2.Mootmht;
            this.@__mootvms = @polSoiduk2.Mootvms;
            this.@__mootornm = @polSoiduk2.Mootornm;
            this.@__kaigkastyp = @polSoiduk2.Kaigkastyp;
            this.@__taismass = @polSoiduk2.Taismass;
            this.@__regmass = @polSoiduk2.Regmass;
            this.@__tyhimass = @polSoiduk2.Tyhimass;
            this.@__istekohti = @polSoiduk2.Istekohti;
            this.@__seisukohti = @polSoiduk2.Seisukohti;
            this.@__kandevoime = @polSoiduk2.Kandevoime;
            this.@__pikkus = @polSoiduk2.Pikkus;
            this.@__laius = @polSoiduk2.Laius;
            this.@__korgus = @polSoiduk2.Korgus;
            this.@__telgarv = @polSoiduk2.Telgarv;
            this.@__telgveo = @polSoiduk2.Telgveo;
            this.@__uksi = @polSoiduk2.Uksi;
            this.@__telgjuht = @polSoiduk2.Telgjuht;
            this.@__teljekoormused = @polSoiduk2.Teljekoormused;
            this.@__haagisPiduritega = @polSoiduk2.HaagisPiduritega;
            this.@__haagisPiduriteta = @polSoiduk2.HaagisPiduriteta;
            this.@__byroo = @polSoiduk2.Byroo;
            this.@__regTunnistuseKp = @polSoiduk2.RegTunnistuseKp;
            this.@__regTunKeht = @polSoiduk2.RegTunKeht;
            this.@__markused = @polSoiduk2.Markused;
            this.@__piirang = @polSoiduk2.Piirang;
            this.@__olek = @polSoiduk2.Olek;
            this.@__olekuKp = @polSoiduk2.OlekuKp;
            this.@__registriOlek = @polSoiduk2.RegistriOlek;
            this.@__liiklusesseLubatud = @polSoiduk2.LiiklusesseLubatud;
            this.@__ylevaatused = @polSoiduk2.Ylevaatused;
            this.@__isikud = @polSoiduk2.Isikud;
        }
        
        public virtual decimal Id {
            get {
                return this.@__id;
            }
            set {
                this.@__id = value;
            }
        }
        
        public virtual decimal EelnevId {
            get {
                return this.@__eelnevId;
            }
            set {
                this.@__eelnevId = value;
            }
        }
        
        public virtual decimal JargnevId {
            get {
                return this.@__jargnevId;
            }
            set {
                this.@__jargnevId = value;
            }
        }
        
        public virtual string Regtun {
            get {
                return this.@__regtun;
            }
            set {
                this.@__regtun = value;
            }
        }
        
        public virtual string RegMrk {
            get {
                return this.@__regMrk;
            }
            set {
                this.@__regMrk = value;
            }
        }
        
        public virtual string Registris {
            get {
                return this.@__registris;
            }
            set {
                this.@__registris = value;
            }
        }
        
        public virtual string Eestis {
            get {
                return this.@__eestis;
            }
            set {
                this.@__eestis = value;
            }
        }
        
        public virtual string Vinkood {
            get {
                return this.@__vinkood;
            }
            set {
                this.@__vinkood = value;
            }
        }
        
        public virtual string Kateg {
            get {
                return this.@__kateg;
            }
            set {
                this.@__kateg = value;
            }
        }
        
        public virtual string Mark {
            get {
                return this.@__mark;
            }
            set {
                this.@__mark = value;
            }
        }
        
        public virtual string Mudel {
            get {
                return this.@__mudel;
            }
            set {
                this.@__mudel = value;
            }
        }
        
        public virtual decimal Aasta {
            get {
                return this.@__aasta;
            }
            set {
                this.@__aasta = value;
            }
        }
        
        public virtual string Varvus {
            get {
                return this.@__varvus;
            }
            set {
                this.@__varvus = value;
            }
        }
        
        public virtual string Kerenm {
            get {
                return this.@__kerenm;
            }
            set {
                this.@__kerenm = value;
            }
        }
        
        public virtual string Tyypkd {
            get {
                return this.@__tyypkd;
            }
            set {
                this.@__tyypkd = value;
            }
        }
        
        public virtual decimal Mootmht {
            get {
                return this.@__mootmht;
            }
            set {
                this.@__mootmht = value;
            }
        }
        
        public virtual decimal Mootvms {
            get {
                return this.@__mootvms;
            }
            set {
                this.@__mootvms = value;
            }
        }
        
        public virtual string Mootornm {
            get {
                return this.@__mootornm;
            }
            set {
                this.@__mootornm = value;
            }
        }
        
        public virtual string Kaigkastyp {
            get {
                return this.@__kaigkastyp;
            }
            set {
                this.@__kaigkastyp = value;
            }
        }
        
        public virtual decimal Taismass {
            get {
                return this.@__taismass;
            }
            set {
                this.@__taismass = value;
            }
        }
        
        public virtual decimal Regmass {
            get {
                return this.@__regmass;
            }
            set {
                this.@__regmass = value;
            }
        }
        
        public virtual decimal Tyhimass {
            get {
                return this.@__tyhimass;
            }
            set {
                this.@__tyhimass = value;
            }
        }
        
        public virtual decimal Istekohti {
            get {
                return this.@__istekohti;
            }
            set {
                this.@__istekohti = value;
            }
        }
        
        public virtual decimal Seisukohti {
            get {
                return this.@__seisukohti;
            }
            set {
                this.@__seisukohti = value;
            }
        }
        
        public virtual decimal Kandevoime {
            get {
                return this.@__kandevoime;
            }
            set {
                this.@__kandevoime = value;
            }
        }
        
        public virtual decimal Pikkus {
            get {
                return this.@__pikkus;
            }
            set {
                this.@__pikkus = value;
            }
        }
        
        public virtual decimal Laius {
            get {
                return this.@__laius;
            }
            set {
                this.@__laius = value;
            }
        }
        
        public virtual decimal Korgus {
            get {
                return this.@__korgus;
            }
            set {
                this.@__korgus = value;
            }
        }
        
        public virtual decimal Telgarv {
            get {
                return this.@__telgarv;
            }
            set {
                this.@__telgarv = value;
            }
        }
        
        public virtual decimal Telgveo {
            get {
                return this.@__telgveo;
            }
            set {
                this.@__telgveo = value;
            }
        }
        
        public virtual decimal Uksi {
            get {
                return this.@__uksi;
            }
            set {
                this.@__uksi = value;
            }
        }
        
        public virtual decimal Telgjuht {
            get {
                return this.@__telgjuht;
            }
            set {
                this.@__telgjuht = value;
            }
        }
        
        public virtual PolSoiduk2.ITeljekoormusedType Teljekoormused {
            get {
                return this.@__teljekoormused;
            }
            set {
                this.@__teljekoormused = value;
            }
        }
        
        public virtual decimal HaagisPiduritega {
            get {
                return this.@__haagisPiduritega;
            }
            set {
                this.@__haagisPiduritega = value;
            }
        }
        
        public virtual decimal HaagisPiduriteta {
            get {
                return this.@__haagisPiduriteta;
            }
            set {
                this.@__haagisPiduriteta = value;
            }
        }
        
        public virtual string Byroo {
            get {
                return this.@__byroo;
            }
            set {
                this.@__byroo = value;
            }
        }
        
        public virtual string RegTunnistuseKp {
            get {
                return this.@__regTunnistuseKp;
            }
            set {
                this.@__regTunnistuseKp = value;
            }
        }
        
        public virtual string RegTunKeht {
            get {
                return this.@__regTunKeht;
            }
            set {
                this.@__regTunKeht = value;
            }
        }
        
        public virtual string Markused {
            get {
                return this.@__markused;
            }
            set {
                this.@__markused = value;
            }
        }
        
        public virtual string Piirang {
            get {
                return this.@__piirang;
            }
            set {
                this.@__piirang = value;
            }
        }
        
        public virtual string Olek {
            get {
                return this.@__olek;
            }
            set {
                this.@__olek = value;
            }
        }
        
        public virtual string OlekuKp {
            get {
                return this.@__olekuKp;
            }
            set {
                this.@__olekuKp = value;
            }
        }
        
        public virtual string RegistriOlek {
            get {
                return this.@__registriOlek;
            }
            set {
                this.@__registriOlek = value;
            }
        }
        
        public virtual bool LiiklusesseLubatud {
            get {
                return this.@__liiklusesseLubatud;
            }
            set {
                this.@__liiklusesseLubatud = value;
            }
        }
        
        public virtual PolSoiduk2.IYlevaatusedType Ylevaatused {
            get {
                return this.@__ylevaatused;
            }
            set {
                this.@__ylevaatused = value;
            }
        }
        
        public virtual PolSoiduk2.IIsikudType Isikud {
            get {
                return this.@__isikud;
            }
            set {
                this.@__isikud = value;
            }
        }
        
        public partial class TeljekoormusedType : ITeljekoormusedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.ITeljekoormus> @__teljekoormus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.ITeljekoormus>();
            
            public TeljekoormusedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public TeljekoormusedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.ITeljekoormus> @teljekoormus) {
                this.@__teljekoormus = @teljekoormus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected TeljekoormusedType(ITeljekoormusedType @teljekoormusedType) {
                this.@__teljekoormus = @teljekoormusedType.Teljekoormus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.ITeljekoormus> Teljekoormus {
                get {
                    return this.@__teljekoormus;
                }
                set {
                    this.@__teljekoormus = value;
                }
            }
        }
        
        public interface ITeljekoormusedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.ITeljekoormus> Teljekoormus {
                get;
                set;
            }
        }
        
        public partial class YlevaatusedType : IYlevaatusedType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus> @__ylevaatus = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus>();
            
            public YlevaatusedType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public YlevaatusedType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus> @ylevaatus) {
                this.@__ylevaatus = @ylevaatus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected YlevaatusedType(IYlevaatusedType @ylevaatusedType) {
                this.@__ylevaatus = @ylevaatusedType.Ylevaatus;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus> Ylevaatus {
                get {
                    return this.@__ylevaatus;
                }
                set {
                    this.@__ylevaatus = value;
                }
            }
        }
        
        public interface IYlevaatusedType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IYlevaatus> Ylevaatus {
                get;
                set;
            }
        }
        
        public partial class IsikudType : IIsikudType {
            
            private System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik> @__isik = new System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik>();
            
            public IsikudType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public IsikudType(System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik> @isik) {
                this.@__isik = @isik;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected IsikudType(IIsikudType @isikudType) {
                this.@__isik = @isikudType.Isik;
            }
            
            public virtual System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik> Isik {
                get {
                    return this.@__isik;
                }
                set {
                    this.@__isik = value;
                }
            }
        }
        
        public interface IIsikudType {
            
            System.Collections.Generic.List<global::Producers.Liiklusregister.Xtee.Riik.Ee.Producer.Liiklusregister.IPolSoiduk2Isik> Isik {
                get;
                set;
            }
        }
    }
}
